package com.acme.bankapp.network;

import java.io.ObjectOutputStream;

/**
 * Bank Server Application interface.
 * @author Alekov Andrey
 *
 */
public interface BankApplication {
	/**
	 * Add client
	 * @param messageValue
	 * @param out
	 */
	public void onClientAdd(String messageValue, ObjectOutputStream out);
	
	/**
	 * Get client
	 * @param messageValue
	 * @param out
	 */
	public void onClientGet(String messageValue, ObjectOutputStream out);
	
	/**
	 * Modify client
	 * @param messageValue
	 * @param out
	 */
	public void onClientChange(String messageValue, ObjectOutputStream out);
	
	/**
	 * Account add
	 * @param messageValue
	 * @param out
	 */
	public void onAccountAdd(String messageValue, ObjectOutputStream out);
	
	/**
	 * Modify account
	 * @param messageValue
	 * @param out
	 */
	public void onAccountChange(String messageValue, ObjectOutputStream out);
	
	/**
	 * Deposit account
	 * @param messageValue
	 * @param out
	 */
	public void onAccountDeposit(String messageValue, ObjectOutputStream out);
	
	/**
	 * Withdraw account
	 * @param messageValue
	 * @param out
	 */
	public void onAccountWithDraw(String messageValue, ObjectOutputStream out);
}
